interface FullReducVo {
  fullPrice?: number;
  reducPrice?: number;
}

interface CardCollageSpecialList {
  id?: number;
  cardCollageId?: number;
  cardCollageCode?: string;
  carmiColor?: string;
  winCarmiId?: number;
  winCarmiDescribe?: string;
  cardTeamId?: number;
  carmiProperty?: string;
  carmiInfo?: string;
  cardPlayerId?: number;
  cardTeamName?: string;
  playerName?: string;
}

interface CardCollageDetailBo {
  id?: number;
  cardCollageId?: number;
  cardCollageCode?: string;
  proofImagePath?: string;
  boxVideoPath?: string;
  isLimitBuy?: string;
  userLimitCount?: number;
  eachMinBuy?: number;
  eachMaxBuy?: number;
  isMarketing?: string;
  fullReducVoList?: FullReducVo[];
  fullReduceMarketing?: string;
  reviewer?: string;
  cause?: string;
  isOpenPrize?: string;
  winCarmi?: string;
  isAutomaticShelf?: string;
  period?: number;
  isOpenRandom?: string;
  passTime?: string;
  saleTotalPrice?: number;
  usedPreferentialAmount?: number;
  officialUsedDiscountsAmount?: number;
  shopUsedDiscountsAmount?: number;
  liveTaskId?: string;
  liveSystemUserId?: number;
  liveTaskStartTime?: number;
  isLockCollage?: string;
  isCancelCollageLock?: string;
  collageShopLimite?: number;
  applyTime?: string;
  isFixedBuy?: string;
  fixedTime?: number;
  isGive?: string;
  cardCollageSpecialList?: CardCollageSpecialList[];
  createDept?: number;
  createBy?: number;
  createTime?: string;
  updateBy?: number;
  updateTime?: string;
  params?: { [key: string]: any };
}

interface TeamGroupList {
  id?: number;
  cardCategoryId?: string | number;
  cardCollageId?: number;
  cardTeamId?: string;
  teamChineseName?: string;
  isOtner?: string;
  isSurplusRandom?: string;
  count?: number;
  surplusCount?: number;
  price?: number;
  deleteFlag?: string;
  createDept?: number;
  createBy?: number;
  createTime?: string;
  updateBy?: number;
  updateTime?: string;
  params?: { [key: string]: any };
}

interface CollageRankingPrizes {
  id?: number;
  collageId?: number | string;
  shopId?: string | number;
  sortNumber?: number;
  prize?: string;
}

interface CardCollageActivityExplains {
  id?: number;
  collageId?: number | string;
  shopId?: string | number;
  sortNumber?: number;
  explainInfo?: string;
  explainName?: string;
}

interface PriceVoList {
  price?: number;
  count?: number;
}

export interface CardCollageFormVo extends BaseEntity {
  id?: number | string;
  collageName?: string;
  collageSeries?: string;
  collageCode?: string;
  collageModule?: string;
  cardCategoryId?: string | number;
  cardCategoryName?: string;
  reportCompleteTime?: string;
  beginLiveTime?: string;
  liveCompleteTime?: string;
  liveBackPath?: string;
  liveReportStatus?: string;
  playWay?: string;
  isReplaceOpen?: string;
  replaceOpenCountMin?: string | number;
  specifications?: string;
  count?: number;
  sheetsNumber?: number;
  lotCount?: number;
  lockLot?: number;
  surplusLot?: number;
  unitPrice?: number;
  isPost?: string;
  startTime?: string;
  imagePath?: string;
  period?: number;
  remark?: string;
  collageStatus?: string;
  shopId?: string | number;
  isActivityExplain?: string;
  isCollageRanking?: string;
  rankingName?: string;
  totalPrice?: number;
  rotationImagePath?: string;
  sortType?: string;
  sortNumber?: number;
  isOpenRandom?: string;
  sortScore?: number;
  isAttentionBuy?: string;
  isPresale?: string;
  isFirstCheap?: string;
  firstBuyPrice?: number;
  deleteFlag?: string;
  endTime?: string;
  stateList?: any[];
  shopName?: string;
  cardCollageDetailBo?: CardCollageDetailBo;
  teamGroupList?: TeamGroupList[];
  collageRankingPrizes?: CollageRankingPrizes[];
  cardCollageActivityExplains?: CardCollageActivityExplains[];
  priceVoList?: PriceVoList[];
  approvalFlag?: boolean;
  collageIds?: number[];
  checkSensitivityInfo?: boolean;
  cardCollageCurrentCardList?: any;
  cardCollageChooseCard?: any;
  createDept?: number;
  createBy?: number;
  createTime?: string;
  updateBy?: number;
  updateTime?: string;
  costPrice?: number;
  profitRatio?: number;
  params?: { [key: string]: any };
}

export interface CardCollageQuery extends PageQuery {

  /**
   * 拼团名称
   */
  collageName?: string;

  /**
   * 拼团编码
   */
  collageCode?: string;

  /**
   * 模块
   */
  collageModule?: string;

  /**
   * 卡类id关联
   */
  cardCategoryId?: string | number;

  /**
   * 玩法(字典)
   */
  playWay?: string;

  /**
   * 规格
   */
  specifications?: string;

  /**
   * 数量
   */
  count?: number;

  /**
   * 张数
   */
  sheetsNumber?: number;

  /**
   * lot数
   */
  lotCount?: number;

  /**
   * 锁单lock数
   */
  lockLot?: number;

  /**
   * 剩余数量
   */
  surplusLot?: number;

  /**
   * 单价
   */
  unitPrice?: number;

  /**
   * 是否包邮（yes_or_no 字典）
   */
  isPost?: string;

  /**
   * 开始时间
   */
  startTime?: string;

  /**
   * 拼团封面
   */
  imagePath?: string;

  /**
   * 拼团状态
   */
  collageStatus?: string;

  /**
   * 店铺id
   */
  shopId?: string | number;

  /**
   * 是否开启活动说明（yes_or_no）
   */
  isActivityExplain?: string;

  /**
   * 是否开启拼团榜单（yes_or_no）
   */
  isCollageRanking?: string;

  /**
   * 拼团榜单名称
   */
  rankingName?: string;

  /**
   * 商品总价
   */
  totalPrice?: number;

  /**
   * 轮播图
   */
  rotationImagePath?: string;

  /**
   * 排序类型
   */
  sortType?: string;

  /**
   * 排序序号
   */
  sortNumber?: number;

  /**
   * 排序分值
   */
  sortScore?: number;

  /**
   * 是否关注后购买 open_or_close
   */
  isAttentionBuy?: string;

  /**
   * 是否预售 open_cor_lose
   */
  isPresale?: string;

  /**
   * 本期好卡
   */
  currentCard?: string;

  /**
   * 是否首购优惠
   */
  isFirstCheap?: string;

  /**
   * 首单优惠价
   */
  firstBuyPrice?: number;

  /**
   * 删除标记
   */
  deleteFlag?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}

export interface CardCollageVO extends CardCollageFormVo {
  /**
   * 主键
   */
  id?: string | number;

  /**
   * 拼团名称
   */
  collageName?: string;

  /**
   * 拼团编码
   */
  collageCode?: string;

  /**
   * 模块
   */
  collageModule?: string;

  /**
   * 卡类id关联
   */
  cardCategoryId?: string | number;

  /**
   * 玩法(字典)
   */
  playWay?: string;

  /**
   * 规格
   */
  specifications?: string;

  /**
   * 数量
   */
  count?: number;

  /**
   * 张数
   */
  sheetsNumber?: number;

  /**
   * lot数
   */
  lotCount?: number;

  /**
   * 锁单lock数
   */
  lockLot?: number;

  /**
   * 剩余数量
   */
  surplusLot?: number;

  /**
   * 单价
   */
  unitPrice?: number;

  /**
   * 是否包邮（yes_or_no 字典）
   */
  isPost?: string;

  /**
   * 开始时间
   */
  startTime?: string;

  /**
   * 拼团封面
   */
  imagePath?: string;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 拼团状态
   */
  collageStatus?: string;

  /**
   * 店铺id
   */
  shopId?: string | number;

  /**
   * 是否开启活动说明（yes_or_no）
   */
  isActivityExplain?: string;

  /**
   * 是否开启拼团榜单（yes_or_no）
   */
  isCollageRanking?: string;

  /**
   * 拼团榜单名称
   */
  rankingName?: string;

  /**
   * 位置推荐是否开启
   */
  allPositionStatus?: string;

  /**
   * 推荐位置数
   */
  allCollagePosition?: number;

  /**
   * 位置推荐是否开启
   */
  positionStatus?: string;

  /**
   * 推荐位置数
   */
  collagePosition?: number;

  /**
   * 商品总价
   */
  totalPrice?: number;

  /**
   * 轮播图
   */
  rotationImagePath?: string;

  /**
   * 排序类型
   */
  sortType?: string;

  /**
   * 排序序号
   */
  sortNumber?: number;

  /**
   * 排序分值
   */
  sortScore?: number;

  /**
   * 是否关注后购买 open_or_close
   */
  isAttentionBuy?: string;

  /**
   * 是否预售 open_cor_lose
   */
  isPresale?: string;

  /**
   * 本期好卡
   */
  currentCard?: string;

  /**
   * 是否首购优惠
   */
  isFirstCheap?: string;

  /**
   * 首单优惠价
   */
  firstBuyPrice?: number;

  /**
   * 已销售总金额（用户实际付款的总价）
   */
  saleTotalPrice: number | string;

  /**
   * 优惠总金额
   */
  discountTotalAmount: number | string;

  /**
   * 删除标记
   */
  deleteFlag?: string;

}

export class CardCollageRaikingVo {
  /**
   * 购买卡密数
   */
  carmiNum: number;

  /**
   * 用户ID
   */
  userId: number | string;

  /**
   * 用户玩家号
   */
  userInviteCode: string;

  /**
   * 用户名称
   */
  nickName: string;

  /**
   * 用户头像
   */
  headPortrait: string;

  /**
   * 排名
   */
  ranking: number | string;

  /**
   * 奖品
   */
  prize: string;
}

export interface cardCollageCopyVo {
  sortNumber?: number;
  collageName?: string;
}
